import type { UserCreateDto, UserUpdateDto, UserListDto, UserSingleDto } from "@/dtos/user.dto";
import type { PageRequest } from "@/types"; // 导入 PageRequest 类型
import http from "@/utils/http";

/**
 * 获取用户列表
 * @param params - 分页参数
 * @returns 包含用户列表、总数和总页数的对象
 */
export function getUserListApi(params: PageRequest) {
  return http.get<any, { list: UserListDto[]; total: number; pages: number }>("/users", { params });
}

/**
 * 获取单个用户
 * @param userId - 用户ID
 * @returns 用户的详细信息
 */
export function getUserApi(userId: string) {
  return http.get<any, UserSingleDto>(`/users/${userId}`);
}

/**
 * 创建用户
 * @param data - 用户创建数据
 * @returns 创建成功的布尔值
 */
export function createUserApi(data: UserCreateDto) {
  return http.post<any, boolean>("/users", data);
}

/**
 * 更新用户
 * @param userId - 用户ID
 * @param data - 用户更新数据
 * @returns 更新成功的布尔值
 */
export function updateUserApi(userId: string, data: UserUpdateDto) {
  return http.put<any, boolean>(`/users/${userId}`, data);
}

/**
 * 删除用户
 * @param userId - 用户ID
 * @returns 删除成功的布尔值
 */
export function deleteUserApi(userId: string) {
  return http.delete<any, boolean>(`/users/${userId}`);
}